/**
 * 首页相关API接口
 */

import request from '@/sheep/request';

export default {
  /**
   * 获取轮播图数据
   * @returns {Promise}
   */
  getBannerList() {
    return request({
      url: '/api/home/banner/list',
      method: 'GET'
    });
  },

  /**
   * 获取菜单数据
   * @returns {Promise}
   */
  getMenuList() {
    return request({
      url: '/api/home/menu/list',
      method: 'GET'
    });
  },

  /**
   * 获取广告魔方数据
   * @returns {Promise}
   */
  getAdCubeData() {
    return request({
      url: '/api/home/ad-cube/data',
      method: 'GET'
    });
  },

  /**
   * 获取精选内容数据
   * @returns {Promise}
   */
  getFeaturedList() {
    return request({
      url: '/api/home/featured/list',
      method: 'GET'
    });
  },

  /**
   * 获取首页统计数据
   * @returns {Promise}
   */
  getHomeStats() {
    return request({
      url: '/api/home/stats',
      method: 'GET'
    });
  },

  /**
   * 获取首页UI配置
   * @returns {Promise}
   */
  getUIConfig() {
    return request({
      url: '/api/home/ui-config',
      method: 'GET'
    });
  },

  /**
   * 更新首页UI配置
   * @param {Object} config UI配置数据
   * @returns {Promise}
   */
  updateUIConfig(config) {
    return request({
      url: '/api/home/ui-config',
      method: 'PUT',
      data: config
    });
  },

  /**
   * 上传图片
   * @param {Object} fileData 文件数据
   * @param {String} uploadKey 上传标识
   * @returns {Promise}
   */
  uploadImage(fileData, uploadKey) {
    return request({
      url: '/api/upload/image',
      method: 'POST',
      data: {
        file: fileData,
        uploadKey: uploadKey,
        type: 'home-ui'
      }
    });
  },

  /**
   * 删除图片
   * @param {String} imageUrl 图片URL
   * @param {String} uploadKey 上传标识
   * @returns {Promise}
   */
  deleteImage(imageUrl, uploadKey) {
    return request({
      url: '/api/upload/delete',
      method: 'DELETE',
      data: {
        imageUrl: imageUrl,
        uploadKey: uploadKey
      }
    });
  },

  /**
   * 获取DIY页面配置
   * @param {Object} params 其他请求参数
   * @returns {Promise}
   */
  getDiyPageConfig(params = {}) {
    return request({
      url: '/promotion/diy-page/get',
      method: 'GET',
      params: {
        id: 12,
        ...params
      },
      header: {
        'tenant-id': '1'
      }
    });
  }
};
